package com.collection_;

import java.util.Iterator;
import java.util.LinkedList;
//LinkedList 底层是链表
//与 ArrayList 相比，LinkedList 的增加和删除的操作效率更高，而查找和修改的操作效率较低。
public class LinkedList_ {
    public static void main(String[] args) {
        LinkedList<String> sites = new LinkedList();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Weibo");
        System.out.println("添加元素 ："+sites);
        // 使用 addFirst() 在头部添加元素
        sites.addFirst("Wiki");
        System.out.println("在头部添加元素 ："+sites);
        // 使用 addLast() 在尾部添加元素
        sites.addLast("DFRobot");
        System.out.println("在尾部添加元素 ："+sites);
        // 使用 removeFirst() 移除头部元素
        sites.removeFirst();
        System.out.println("移除头部元素 ："+sites);
        // 使用 removeFirst() 移除尾部元素
        sites.removeLast();
        System.out.println("移除尾部元素 ："+sites);
        // 使用 getFirst() 获取头部元素
        System.out.println("获取头部元素 ："+sites.getFirst());
        // 使用 getLast() 获取尾部元素
        System.out.println("获取尾部元素 ："+sites.getLast());

        //用for来迭代元素
        System.out.println("用for来迭代元素 : ");
        for(int size = sites.size(), i = 0; i < size; i++){
            System.out.println("i = "+sites.get(i));
        }

        //也可以使用 for-each 来迭代元素
        System.out.println("使用 for-each/增强for 来迭代元素 : ");
        for(String i : sites){
            System.out.println(i);
        }

        //使用  Iterator 迭代器
        System.out.println("使用  Iterator 迭代器 : ");
        Iterator<String> ite=sites.iterator();
        while(ite.hasNext())//判断下一个元素之后有值
        {
            System.out.println(ite.next());
        }

    }
}
